import { API } from './API';
import type { FormItemRule } from 'element-plus';

// 目录路径验证
export function dirPathValidator(type: 'file' | 'dir' = 'dir'): FormItemRule['validator'] {
	return function (_rule, value, callback) {
		const name = type === 'dir' ? '文件夹' : '文件';

		API.invoke('check-path', value, type).then((t) => {
			if (!value) return callback(new Error('路径不能为空'));

			switch (t) {
				case 'not exist':
					callback(new Error(name + '不存在'));
					break;
				case 'type Error':
					callback(new Error('路径不是' + name));
					break;
				case 'not read':
					callback(new Error(name + '不可读'));
					break;
				case 'ok':
					callback();
					break;
			}
		});
	};
}
